package com.flower.subject.entity;

import lombok.Data;

import java.util.Collections;
import java.util.List;

/**
 * @author lavender
 * @version 1.0
 * @date 2024-07-08 16:18
 */
@Data
public class PageResult<T> {
    private Integer pageNo = 1;
    private Integer pageSize = 20;
    private Integer total = 0;
    private Integer totalPages = 0;
    private List<T> result = Collections.emptyList();

    private Integer start = 1;
    private Integer end = 0;

    public void setRecords(List<T> result){
        this.result = result;

        if(result != null && result.size() > 0){
            setTotal(result.size());
        }
    }

    public void setTotal(Integer total){
        this.total =  total;
        if(this.pageSize > 0){
            this.totalPages = (total / this.pageSize) + (total % this.pageSize == 0 ? 0 : 1);
        }else {
            this.totalPages = 0;
        }
        this.start = (this.pageSize > 0 ? (this.pageNo - 1) * this.pageSize : 0 ) + 1;
        this.end = (this.start - 1  + this.pageSize * (this.pageNo > 0 ? 1 : 0));
    }

    public void setPageSize(Integer pageSize){
        this.pageSize = pageSize;
    }

    public void setPageNo(Integer pageNo){
        this.pageNo = pageNo;
    }
}
